package br.fatec.servico;

public abstract class DAOFactory {
	//lista de tipos dao suportados por esta fabrica
	public static final int MYSQL=1;
	public static final int POSTGRESQL=2;
	public static final int ORACLE=3;

	//havera um metodo para cada DAO que pode ser criado
	//a fabrica concreta devera implementar estes metodos
	//public abstract IClienteDAO getClienteDAO();
	public abstract IEmpresaDAO getEmpresaDAO();
	public abstract IUsuarioDAO getUsuarioDAO();
	public abstract IResponsavelDAO getResponsavelDAO();
	public abstract IConvenioDAO getConvenioDAO();
	public abstract IEstagioDAO getEstagioDAO();
	//o metodo eh estatico pois nao ha necessidade de criar um objeto para usar 
	//um metodo de criacao
	public static DAOFactory getDAOFactory (int umaFabrica){
		switch (umaFabrica){
		case MYSQL:
			return new MySQLDAOFactory();
		case POSTGRESQL:
			//	return new PostgreSQLDAOFactory();
		case ORACLE:
			return new OracleSQLDAOFactory();
		default:
			return null;
		}
	}


}
